package com.wa.enums;

import java.util.HashMap;
import java.util.Map;

/**
 * 数据权限方法和URI映射配置
 *
 * 枚举命名规则：应用名称 + 方法名称；
 * 示例：CRM_CUSTOMER_LIST
 *
 * @author Homan
 */
public enum CommonDataPermissionUriConfigEnum {
    CRM_CUSTOMER_LIST("CRM 客户列表", "/crm/api/customer/getPageCrmCustomer", true),
    ;

    /**
     * 方法名(GraphQL中对应的方法)
     */
    private String methodName;
    /**
     * 方法指定URI(对应“接口操作”配置的URL)
     */
    private String methodUri;
    /**
     * 默认是否展示所有数据（true-没有配置数据权限时，展示所有数据；false-没有配置数据权限时，不展示数据）
     */
    private boolean defaultShowAll;

    CommonDataPermissionUriConfigEnum(String methodName, String methodUri, boolean defaultShowAll) {
        this.methodName = methodName;
        this.methodUri = methodUri;
        this.defaultShowAll = defaultShowAll;
    }

    private static final Map<String, CommonDataPermissionUriConfigEnum> LOOK_UP = new HashMap<>();
    static {
        for (CommonDataPermissionUriConfigEnum configEnum : CommonDataPermissionUriConfigEnum.values()) {
            LOOK_UP.put(configEnum.getMethodName(), configEnum);
        }
    }

    public String getMethodName() {
        return methodName;
    }

    public String getMethodUri() {
        return methodUri;
    }

    public boolean getDefaultShowAll() {
        return defaultShowAll;
    }
}
